package app

import (
	"hft/Database/admin"
	join_db "hft/Database/admin/join"
	"hft/Database/admin/phone"
	model_share "hft/Internal/Model/share"
	"hft/db/mysql"
	"hft/global"
	"os"

	"gorm.io/gorm"
)

// 初始化
func Gorm() *gorm.DB {
	switch global.OC_CONFIG.System.DbType {
	// 观察现在是使用哪种类型的数据库
	case "mysql":
		return mysql.GormMysql()
	default:
		return nil
	}
}

// RegisterTables 注册数据库表专用
// Author SliverHorn
func RegisterTable(db *gorm.DB) {
	err := db.AutoMigrate(
		model_share.Api{},
		model_share.Route{},
		model_share.Rule{},
		model_share.RoleRule{},
		// 后端数据库
		join_db.Join{},
		// &file_db.Dir{},
		// &file_db.File{},
		// &country_setting.Emoji{},
		// &common_phrase.CommonPhraseUsual{},
		// &common_phrase.CommonPhrase{},
		// &common_phrase.CommonPhraseCate{},
		// &friendly_link.CityFriendLyLink{},
		// &friendly_link.GloFriendlyLink{},
		// &user_db.UserRegion{},
		// &user_db.User{},
		// &user_db.Clue{},
		// &user_db.HelpSelect{},
		// &user_db.PhoneRecord{},
		// &user_db.Reservation{},
		// &user_db.FollowUp{},
		// &user_db.ExtendInfo{},
		// &loupan_db.Platform{},
		&phone.PhoneAudio{},
		// &home_swiper.HomeSwiper{},
		// &wechat.WeChatMenu{},
		// &admin.Advise{},
		// &admin.DNBroker{},
		// &admin.Origin{},
		// &admin.FeedBack{},
		// &admin.Private{},
		// &admin.Assist{},
		&admin.CountrySetting{},
		// &admin.FriendlyLink{},
		// &admin.AboutArticle{},
		// &admin.SmallCategory{},
		// &admin.AboutUsCategory{},
		// &admin.UserBroker{},
		// &admin.User{},
		// &admin.PhoneRecord{},
		// &admin.Clue{},
		// &admin.Remark{},
		// &admin.AccountAudit{},
		// &admin.CitySetting{},
		// &admin.Price{},
		// &admin.TotalPrice{},
		&admin.Area{},
		// &admin.ShopRoute{},
		// &admin.HomeSwiper{},
		// &admin.CommonActivity{},
		// &admin.AccountExpand{},
		// &admin.ModelActivity{},
		// &admin.Activity{},
		// &admin.ActiveGroup{},
		&admin.ActiveBase{},
		&admin.ActiveCont{},
		// &admin.LouPanSwiperCategory{},
		&admin.LouPanSwiper{},
		// &admin.Room{},
		&admin.RoomSwiper{},
		// &admin.LouPanArea{},
		// &admin.Disadvantage{},
		// &admin.RoomType{},
		// &admin.SellStatus{},
		&admin.LouPan{},
		// &admin.LouPanTeSe{},
		// &admin.CommonTag{},
		// &admin.SellLouPanInfo{},
		// &admin.Property{},
		// &admin.FileGroup{},
		// &admin.Route{},
		// &admin.Role{},
		// &admin.ArticleType{},
		&admin.ArticleBase{},
		&admin.ArticleCont{},
		&admin.Account{},
	// &admin.FileUploadAndDownload{},
	// &admin.Region{},
	// &admin.LouPanName{},
	// &admin.Btn{},
	// &admin.Api{},
	// &admin.Meta{},
	)
	if err != nil {
		os.Exit(0)
	}
}
